package br.edu.sistemaacademico.pojo;

import java.io.Serializable;

import br.edu.sistemaacademico.Memento.Memento;

public abstract class Pessoa implements Serializable{
	public static final Character MASCULINO = 'M';
	public static final Character FEMININO = 'F';
	protected long id;
	protected String nome;
	protected String cpf;
	protected String endereco;
	protected String telefone;
	protected Character sexo;
	protected String rg;
	protected String nascimento;
	protected String login;
	protected String senha;
	private int status;
	
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}

	public long getId() {
		return this.id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return this.cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getEndereco() {
		return this.endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getTelefone() {
		return this.telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public Character getSexo() {
		return this.sexo;
	}

	public void setSexo(Character sexo) {
		this.sexo = sexo;
	}

	public String getRg() {
		return this.rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public String getNascimento() {
		return this.nascimento;
	}
 
	public void setNascimento(String nascimento) {
		this.nascimento = nascimento;
	}
	
	public abstract Pessoa clone();
	
	public Memento save(){
		return new Memento(this);
	}
	
	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public void restore(Memento memento){
		Pessoa p = (Pessoa) memento.getMemento();
		this.id = p.getId();
		this.cpf = p.getCpf();
		this.endereco = p.getEndereco();
		this.nascimento = p.getNascimento();
		this.nome = p.getNome();
		this.rg = p.getRg();
		this.sexo = p.getSexo();
		this.telefone = p.getTelefone();
	}
}